Removing Secrets from Android’s TLS
نویسندگان
چکیده
Cryptographic libraries that implement Transport Layer Security (TLS) have a responsibility to delete cryptographic keys once they’re no longer in use. Any key that’s left in memory can potentially be recovered through the actions of an attacker, up to and including the physical capture and forensic analysis of a device’s memory. This paper describes an analysis of the TLS library stack used in recent Android distributions, combining a C language core (BoringSSL) with multiple layers of Java code (Conscrypt, OkHttp, and Java Secure Sockets). We first conducted a black-box analysis of virtual machine images, allowing us to discover keys that might remain recoverable. After identifying several such keys, we subsequently pinpointed undesirable interactions across these layers, where the higherlevel use of BoringSSL’s reference counting features, from Java code, prevented BoringSSL from cleaning up its keys. This interaction poses a threat to all Android applications built on standard HTTPS libraries, exposing master secrets to memory disclosure attacks. We found all versions we investigated from Android 4 to the latest Android 8 are vulnerable, showing that this problem has been long overlooked. The Android Chrome application is proven to be particularly problematic. We suggest modest changes to the Android codebase to mitigate these issues, and have reported these to Google to help them patch the vulnerability in future Android systems.
منابع مشابه
Stealing Secrets with SSL/TLS and SSH
We present very simple kleptographic attacks on SSL/TLS and SSH protocols. They enable a party, which has slightly manipulated the code of a cryptographic library, to steal secrets of the user. According to the scenario of the kleptographic attacks the secrets can be stolen only by a party having a secret key not included in the manipulated code. The attacker needs only to record transmissions....
متن کاملExamining Visual-Spatial Paths for Mobile Authentication
Inspired by people’s strong memory for visual-spatial paths (e.g., commuting paths), we present in this paper an introductory exploration of the use of these paths for memorable, strong mobile authentication. In a preliminary study, we evaluated several lowfidelity representations for encoding relatively strong (~20 bit) secrets as visual-spatial paths: a 2D birds-eye view, a 3D thirdperson vie...
متن کاملPresent but Unreachable: Reducing Persistentlatent Secrets in HotSpot JVM
Applications that manage sensitive secrets, including cryptographic keys, are typically engineered to overwrite the secrets in memory once they’re no longer necessary, offering an important defense against forensic attacks against the computer. In a modern garbagecollected memory system, however, live objects will be copied and compacted into new memory pages, with the user program being unable...
متن کاملIntegrating Remote Attestation with Transport Layer Security
Intel® Software Guard Extensions (Intel® SGX) is a promising technology to securely process information in otherwise untrusted environments. An important aspect of Intel SGX is the ability to perform remote attestation to assess the endpoint’s trustworthiness. Ultimately, remote attestation will result in an attested secure channel to provision secrets to the enclave. We seamlessly combine Inte...
متن کاملPoster: Full Support for Reference Monitoring in Android’s Application Framework
In this poster, we present ongoing work on how to enable full support for reference monitoring in Android’s application framework. By default, core services of the application framework are designed to accept data objects as input and to return data objects to application processes (e.g., Intent objects or clipboard data) instead of only references to these accessed objects. This design decisio...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2017